此篇將講述如何取得文章,相較於新增資料的 POST method,請求資料會使用 GET method。而大致的流程架構如上篇所示,最後也會有 API 測試的部分,比較不同的是會做程式碼的精簡優化。
PostService
interface class 中建立列出所有文章的的 method: getAllPosts()
public interface PostService {
PostDto createPost(PostDto postDto);
List<PostDto> getAllPosts();
}
@Override
public List<PostDto> getAllPosts() {
List<Post> posts = postRepository.findAll();
return posts.stream().map(post->mapToDTO(post)).collect(Collectors.toList());
}
private PostDto mapToDTO(Post post){
PostDto postResponse = new PostDto();
postResponse.setId(newPost.getId());
postResponse.setTitle(newPost.getTitle());
postResponse.setDescription(newPost.getDescription());
postResponse.setContent(newPost.getContent());
return postResponse;
}
這樣的話,createPost()
的 function 就要刪除關於轉換的部分,並且取而代之的會是:
PostDto postResponse = mapToDTO(newPost);
b. 轉換成 DTO 轉成 Entity 的如下:
private Post mapToEntity(PostDto postDto){
Post post = new Post();
post.setTitle(postDto.getTitle());
post.setDescription(postDto.getDescription());
post.setContent(postDto.getContent());
return post;
}
所以在一開始的轉換中就可以使用 mapToEntity
這個 method
Post post = mapToEntity(postDto);
以上為程式優化以及功能建立。
在處理使用者動作時,因為是向資料庫 request 獲取資料,所以使用的方法是 GET,會使用 @GetMapping
@GetMapping
public List<PostDto> getAllPost(){
return postService.getAllPosts();
}
使用 http://localhost:8080/api/posts
,並選擇 GET 的方式,按下 send 後就會顯示出資料的喔~
以上是有關撈出文章的 API 實作以及流程,明天將更深入了解其他的 API 設定~
若文中有錯誤之處還請多多包涵與指正,歡迎在文章下方留言討論!
明天見~